home *** CD-ROM | disk | FTP | other *** search
/ The Business Master (3rd Edition) / The Business Master (3rd Edition).iso / files / spreotus / 123fin / stock.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-03-31  |  18.9 KB  |  317 lines

  1. 4  BLANK$="                                                           "
  2. 5  DIM PQ$(50)
  3. 60  DIM MON$(12):DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER:FOR I=1 TO 12:READ MON$(I):NEXT I
  4. 70  DEF SEG:POKE 106,0:DIM P$(100):N1=1:N2=13:KEY OFF
  5. 90  REM
  6. 100  REM===========         Prompt for menu in P$
  7. 110  P$(100)="Enter Your Selection:_":P$(99)="Wrong choice..Try again.."
  8. 120  DATA Master Menu,Add  Data,Print Summary,Review Data,Get File Information,Print History,Evaluate Portfolio,Quit
  9. 130  DATA Review Menu,Review Entire Data,Review By Selected Stock,Review By Month,End Review
  10. 140  REM=============================================================
  11. 150  FMAT1$="###.####":FMAT2$="\          \":FMAT3$="####":FMAT4$="##.##"
  12. 160  FMAT5$="####.## ":FMAT6$="######.##":FMAT7$="\   \"
  13. 170  REM
  14. 180  REM
  15. 190     FOR I=N1 TO N2:READ P$(I):NEXT
  16. 195  FOR I=1 TO 14:READ PQ$(I):NEXT I
  17. 197  DIM Q$(11),QQ$(20):FOR I=1 TO 11:READ Q$(I):NEXT I
  18. 200  NUMBER=0
  19. 210  GOSUB 430
  20. 230     GOTO 360
  21. 240  REM
  22. 250  REM
  23. 260  REM===================================================================
  24. 270  REM=====          Menu Writing
  25. 280  REM==================================================================
  26. 290  L=LEN(P$(BEG)):COL=INT((80-L)/2):CLS:K=1:KK=1
  27. 300  LOCATE 3,COL:PRINT P$(BEG):LOCATE 4,COL:FOR I=1 TO L:PRINT"=";:NEXT I
  28. 310  FOR I=(BEG+1) TO IEND:LOCATE K+6,COL-5:PRINT KK") ";:PRINT P$(I):K=K+2:KK=KK+1:NEXT:RETURN
  29. 320  L=LEN(P$(BEG)):COL=INT((80-L)/2):CLS:K=1:KK=1
  30. 330  LOCATE 3,COL:PRINT P$(BEG):LOCATE 4,COL:FOR I=1 TO L:PRINT"=";:NEXT I
  31. 340  FOR I=(BEG+1) TO IEND:LOCATE K+6,5:PRINT KK") ";:PRINT P$(I):K=K+2:KK=KK+1:NEXT:RETURN
  32. 350  REM=================================================================
  33. 360  REM Call Master Menu
  34. 370    BEG=1:IEND=8:GOSUB 260
  35. 380    LOCATE 24,COL+5:PRINT P$(100);:IN$=INKEY$
  36. 390    IF VAL(IN$)<1 OR VAL(IN$)>7 THEN 380
  37. 400    ON VAL(IN$) GOSUB 590,1190,1530,2180,2220,5000,2110
  38. 410  GOTO 360
  39. 420  REM ========================================================================
  40. 430  REM .....      Obtain file information
  41. 435  CLS
  42. 440  LOCATE 10,10:PRINT"DATA FILE: ";:INPUT"",FILE$:IF LEN(FILE$)=0 THEN 440
  43. 441  LOCATE 12,10:INPUT "IS THIS A NEW FILE PRINT:  ",ANS$:IF ANS$="y" OR ANS$="Y" THEN KNOWN=0 ELSE KNOWN=1
  44. 442  IF KNOWN=0 THEN 450
  45. 445  OPEN "R",1,FILE$,128
  46. 447  FIELD #1,20 AS A1$,6 AS A2$, 6 AS A3$, 10 AS A4$, 10 AS A5$ ,10 AS A6$,1 AS A7$, 1 AS A8$, 1 AS A9$, 10 AS A10$
  47. 448  GET #1,1:ACNT=CVI(A1$):KN=CVI(A2$)
  48. 450  GOTO 360
  49. 550  IF ERR=53 THEN PRINT"There is no such data file on current disk drive!"
  50. 560  LOCATE 24,1:INPUT"Hit return to continue..",ANY$ :IF ERR=53 THEN RESUME 210 ELSE GOTO 360
  51. 570                                                                   REM
  52. 580                                                                   REM
  53. 590  CLS
  54. 592  LIN$="--------------------------------------------------------------------------":            COD1$="Transaction Code: Buy=1, Sell=2, Short=3, Short Cov=4":COD2$="Exchange Code: NYSE=1, ASE=2, OTC=3":COD3$="
  55. 600  P$="Data Entry":L=LEN(P$):COL=INT((80-L)/2):LOCATE 1,COL:PRINT P$:LOCATE 2,COL:FOR I=1 TO LEN(P$):PRINT"=";:NEXT I
  56. 605  LOCATE 20,1:PRINT LIN$:LOCATE 21,1:PRINT COD1$:LOCATE 23,1:PRINT COD2$
  57. 610  LOCATE 4,2:PRINT"1. Stock Name        :  ";:GOSUB 1080
  58. 620  LOCATE 6,2:PRINT"2. Symbol            :  ";:GOSUB 1080
  59. 630  LOCATE 8,2:PRINT"3. No of Shares      :  ";:GOSUB 1080
  60. 640  LOCATE 10,2:PRINT"4. Price             :  ";:GOSUB 1080
  61. 650  LOCATE 12,2:PRINT"5. Commision         :  ";:GOSUB 1080
  62. 660  LOCATE 4,42:PRINT"6. Date              :  ";:GOSUB 1080
  63. 662  LOCATE 6,42:PRINT"7. Exchange Code     :  ";:GOSUB 1080
  64. 664  LOCATE 8,42:PRINT"8. Account Number    :  ";:GOSUB 1080
  65. 666  LOCATE 10,42:PRINT"9. Transaction Code  :  ";:GOSUB 1080
  66. 668  LOCATE 12,41:PRINT"10. Option Exp. Date  :  ";:GOSUB 1080
  67. 670  GOSUB 780:  GOSUB 800:  GOSUB 830:  GOSUB 860:  GOSUB 940:  GOSUB 980
  68. 672  GOSUB 890:  GOSUB 896:  GOSUB 900   :GOSUB 882
  69. 680  LOCATE 15,4:PRINT"Entries OK? (Y/N)          :";:INPUT"",ANS$
  70. 685  IF LEN(ANS$)=0 THEN 730
  71. 690  IF ANS$="Y" OR ANS$="y" THEN 730
  72. 700  LOCATE 15,4:PRINT"Change which entry (1-10)? :";:INPUT"",ANS$
  73. 710  ON VAL(ANS$) GOSUB 780,800,830,860,940,980,890,896,900,882
  74. 720  GOTO 680
  75. 730  KN=KN+1:IREC=KN+ACNT+5
  76. 731  LSET A1$=A$:LSET A2$=B$:LSET A3$=C$:LSET A4$=D$:LSET A5$=E$:LSET A6$=F$:LSET A7$=G$:LSET A8$=H$:LSET A9$=J$:LSET A10$=K$
  77. 733  PUT #1,IREC
  78. 740  LOCATE 17,4:PRINT"More data ? (Y/N) :";:INPUT" ",ANS$:IF ANS$="" OR ANS$="y" OR ANS$="Y" THEN GOTO 745 ELSE 750
  79. 745  LOCATE 15,4:PRINT BLANK$;:LOCATE 17,4:PRINT BLANK$  :GOTO 610
  80. 750  RETURN
  81. 760                                                                   REM
  82. 770                                                                   REM
  83. 780  LOCATE 4,26:INPUT"",A$:IF A$="X" OR A$="x" THEN 360
  84. 790  IF LEN(A$)=0 THEN 780 ELSE RETURN
  85. 800  LOCATE 6,26:INPUT"",B$ :IF B$="X" OR B$="x" THEN 360
  86. 820  IF LEN(B$)=0 THEN 800 ELSE RETURN
  87. 830  LOCATE 8,26:INPUT"",C$:IF C$="X" OR C$="x" THEN 360
  88. 840  X$=C$:GOSUB 1010:IF ER=1 THEN 830
  89. 850  IF LEN(C$)=0 THEN 830 ELSE RETURN
  90. 860  LOCATE 10,26:INPUT"",D$ :IF D$="X" OR D$="x" THEN 360
  91. 865  X$=D$:GOSUB 1010:IF ER=1 THEN 860
  92. 870  IF LEN(D$)=0 THEN 860
  93. 880  RETURN
  94. 882  LOCATE 12,66:INPUT"",K$ :IF K$="X" OR K$="x" THEN 360
  95. 884  IF LEN(K$)=0 THEN 882 ELSE RETURN
  96. 890  LOCATE 6,66:INPUT"",G$ :IF G$="X" OR G$="x" THEN 360
  97. 891  X$=G$:GOSUB 1010:IF ER=1 THEN 890
  98. 892  IF LEN(G$)=0 THEN 890
  99. 894  RETURN
  100. 896  LOCATE 8,66:INPUT"",H$ :IF H$="X" OR H$="x" THEN 360
  101. 897  IF LEN(H$)=0 THEN 896
  102. 898  X$=H$:GOSUB 1010:IF ER=1 THEN 896
  103. 899  RETURN
  104. 900  LOCATE 10,66:INPUT"",J$ :IF J$="X" OR J$="x" THEN 360
  105. 905  IF LEN(J$)=0 THEN 900
  106. 907  RETURN
  107. 940  LOCATE 12,26:INPUT"",E$ :IF E$="x" OR E$="X" THEN 360
  108. 945  X$=E$:GOSUB 1010:IF ER=1 THEN 940
  109. 950  IF LEN(E$)=0 THEN 940
  110. 970  RETURN
  111. 980  LOCATE 4,66:INPUT"",F$ :IF F$="x" OR F$="X" THEN 360
  112. 990  IF LEN(F$)=0 THEN 980
  113. 1000  RETURN
  114. 1010  ER=0:L=LEN(X$):FOR I=1 TO L:Q$=MID$(X$,I,1):IF Q$<"." OR Q$>"9" THEN ER=1:NEXT I
  115. 1020  IF ER=0 THEN 1040
  116. 1030  LOCATE 24,1:PRINT"No alphabetic input for this entry..";:FOR I=1 TO 1200:NEXT I:LOCATE 24,1:PRINT"                                             ";:
  117. 1040  RETURN
  118. 1050  ER=1:L=LEN(X$):FOR I=1 TO L:Q$=MID$(X$,I,1):IF Q$ =CHR$(45)  THEN ER=0:NEXT I:PRINT ER
  119. 1060  ER=1:L=LEN(X$):FOR I=1 TO L:Q$=MID$(X$,I,1):IF Q$ =CHR$(47)  THEN ER=0:NEXT I:PRINT ER
  120. 1070  RETURN
  121. 1080  FOR I=1 TO 10:PRINT".";:NEXT I:RETURN
  122. 1090                                                                   REM
  123. 1100                                                                   REM
  124. 1110  N3=LEN(B$):N1=45:GOSUB 1130:NH=N2:N1=47:GOSUB 1130:NS=N2:A1=VAL(MID$(B$,1,NH-1)) :A2=VAL(MID$(B$,NH+1,N3-NH)):A3=VAL(MID$(B$,NS+1,N3-NS))
  125. 1120  PR=A1+A2/A3:RETURN
  126. 1130  N2=0:FOR I=1 TO N3
  127. 1140  IF MID$(B$,I,1)<> CHR$(N1) THEN 1160
  128. 1150  N2=I
  129. 1160  NEXT I
  130. 1170  RETURN
  131. 1180                                                                   REM
  132. 1190  CLS:SCREEN 2:PROMT$="Please wait ... data being sorted..":L=LEN(PROMT$):COL=INT((80-L)/2):LOCATE 12,COL:PRINT PROMT$
  133. 1195  GOSUB 1200:GOSUB 1390:SCREEN 0 :RETURN
  134. 1200  FOR I=1 TO KN:INDEX(I)=1:NEXT I:Q=1
  135. 1205  FOR II=1 TO KN:I=II
  136. 1210      KZ=0:STOK$=STOCK$(I)
  137. 1220  IF INDEX(I)=0 THEN 1370
  138. 1230  SHAR(Q)=SHARE(I):NAM$(Q)=STOCK$(I):IF TRANS$(I)="B" THEN 1240 ELSE 1250
  139. 1240  BPR(Q)=PRICE(I):DB$(Q)=DAT$(I):COMB(Q)=COMM(I) :GOTO 1260
  140. 1250  SPR(Q)=PRICE(I):DS$(Q)=DAT$(I):COMS(Q)=COMM(I)
  141. 1260    FOR J=(I+1) TO KN
  142. 1270  IF KZ=1 THEN 1350
  143. 1280      IF STOK$<>STOCK$(J) THEN 1350
  144. 1290  IF TRANS$(I)=TRANS$(J) THEN 1350
  145. 1300      IF TRANS$(J)="B" THEN 1310 ELSE 1320
  146. 1310      BPR(Q)=PRICE(J):DB$(Q)=DAT$(J):COMB(Q)=COMM(J) :GOTO 1330
  147. 1320      SPR(Q)=PRICE(J):DS$(Q)=DAT$(J):COMS(Q)=COMM(J)
  148. 1330  REM
  149. 1340      INDEX(J)=0:KZ=1
  150. 1350  NEXT J
  151. 1360  Q=Q+1
  152. 1370  NEXT II
  153. 1380  FOR I=1 TO Q:N$(I)=NAM$(I):IND(I)=I:NEXT I:E=Q:GOSUB 2360
  154. 1385  RETURN
  155. 1390  WIDTH "lpt1:",125:FT1$="\        \":FT2$=" #####":FT3$="\        \":FT4$=" ###.## ":FT5$="#####.##":FT6$=" ####.##"
  156. 1400  SUM3=0:SUM4=0:NPAGE=1:GOSUB 2830
  157. 1410  KL=1:FOR II=2 TO Q:I=IND(II) :TT=SHAR(I)*BPR(I):PROF=0
  158. 1420  IF DS$(I)<>"" THEN PROF=SHAR(I)*(SPR(I)-BPR(I)) -COMB(I)-COMS(I)
  159. 1421  SUM3=SUM3+PROF
  160. 1425  LPRINT TAB(1) NAM$(I);:
  161. 1430  LPRINT TAB(10) USING FT2$;SHAR(I);:
  162. 1435  IF LEN(DB$(I))=0 THEN 1450
  163. 1440  LPRINT TAB(20) USING FT3$;DB$(I);:LPRINT TAB(30) USING FT4$;BPR(I);:LPRINT TAB(40) USING FT4$;COMB(I);:
  164. 1450  IF LEN(DS$(I))=0 THEN 1465
  165. 1460  LPRINT TAB(55) USING FT3$;DS$(I);:LPRINT TAB(65) USING FT4$;SPR(I);:LPRINT TAB(75) USING FT4$;COMS(I);:
  166. 1465   IF SPR(I)=0 THEN LPRINT TAB(90) USING FT5$;TT;
  167. 1470   IF SPR(I)<>0 THEN LPRINT TAB(100) USING FT6$;PROF; ELSE LPRINT TAB(100) "       ";:
  168. 1475   IF SPR(I)=0 THEN SUM4=SUM4+SHAR(I)*BPR(I)
  169. 1476  LPRINT:LPRINT:KL=KL+2
  170. 1477  IF KL>50 THEN 1478 ELSE 1480
  171. 1478  LPRINT:LPRINT:KL=1:LPRINT CHR$(140);:GOSUB 2830:NPAGE=NPAGE+1
  172. 1480   NEXT II
  173. 1485  LPRINT TAB(90) "____________________";:LPRINT TAB(75) "Total==>";:LPRINT TAB(90) USING "######.##";SUM4;:LPRINT TAB(100) USING FT5$;SUM3:
  174. 1490  RETURN
  175. 1500                                                                   REM
  176. 1510                                                                  REM
  177. 1520                                                                   REM
  178. 1530  BEG=9:IEND=13:GOSUB 260
  179. 1540   LOCATE 24,COL+5:PRINT P$(100);:IN$=INKEY$
  180. 1550  IF VAL(IN$)<1 OR VAL(IN$)>4 THEN 1540
  181. 1560  ON VAL(IN$) GOSUB 1610,1770,1930,360
  182. 1570  GOTO 1530
  183. 1580  RETURN
  184. 1590                                                                   REM
  185. 1600                                                                   REM
  186. 1610  CLS:SUM3=0:SUM4=0
  187. 1620  GOSUB 2640:E=KN:GOSUB 2360
  188. 1630  KNUM=6:FOR II=1 TO KN:I=IND(II)
  189. 1640  SUM3=SUM3+COMM(I)
  190. 1650  IF TRANS$(I)="b" OR TRANS$(I)="B" THEN SUM4=SUM4-TOT(I) ELSE SUM4=SUM4+TOT(I)
  191. 1660  IF KNUM=6 THEN GOSUB 2150
  192. 1670  LOCATE KNUM,1:PRINT USING FMAT2$; DAT$(I);:LOCATE KNUM,10:PRINT USING FMAT2$; STOCK$(I);:
  193. 1680  LOCATE KNUM,20:PRINT USING FMAT3$; SHARE(I);:LOCATE KNUM,30:PRINT USING FMAT4$; PRICE(I);:LOCATE KNUM,40:PRINT USING FMAT2$; TRANS$(I);:LOCATE KNUM,55:PRINT USING FMAT5$; COMM(I);:LOCATE KNUM,70:PRINT USING FMAT6$; TOT(I);:
  194. 1690  KNUM=KNUM+2
  195. 1700  IF KNUM<18 THEN 1720
  196. 1710  LOCATE 24,1:PRINT"Hit RETURN to continue..";:INPUT"",ANY$:KNUM=6:GOTO 1720
  197. 1720  NEXT II
  198. 1730  LOCATE 23,35:PRINT"Total ==>";:LOCATE 21,55:PRINT"__________________________";:LOCATE 23,55:PRINT USING FMAT5$;SUM3;:LOCATE 23,70:PRINT USING FMAT6$;SUM4;:
  199. 1740  LOCATE 23,1:PRINT"Hit RETURN to continue..";:INPUT"",ANY$:RETURN
  200. 1750                                                                   REM
  201. 1760                                                                   REM
  202. 1770  SUM1=0:SUM2=0:KNUM=6:CLS:LOCATE 1,20:INPUT"Enter Stock Name For Review: ",STOK$
  203. 1780  CLS:LOCATE 1,30:PRINT"Review of: ";STOK$
  204. 1790  IF KNUM=6 THEN GOSUB 2160
  205. 1800  FOR I=1 TO KN
  206. 1810  IF STOK$<> STOCK$(I) THEN GOTO 1910
  207. 1820  SUM1=SUM1+COMM(I)
  208. 1830  IF TRANS$(I)="b" OR TRANS$(I)="B" THEN SUM2=SUM2-TOT(I) ELSE SUM2=SUM2+TOT(I)
  209. 1840  LOCATE KNUM,1:PRINT USING FMAT2$; DAT$(I);:LOCATE KNUM,10:PRINT USING FMAT2$; STOCK$(I);:
  210. 1850  LOCATE KNUM,20:PRINT USING FMAT3$; SHARE(I);:LOCATE KNUM,30:PRINT USING FMAT4$; PRICE(I);:LOCATE KNUM,40:PRINT USING FMAT2$; TRANS$(I);:LOCATE KNUM,55:PRINT USING FMAT5$; COMM(I);:LOCATE KNUM,70:PRINT USING FMAT6$; TOT(I);:
  211. 1860  KNUM=KNUM+2
  212. 1870  LOCATE 23,35:PRINT"Total ==>";:LOCATE 21,55:PRINT"__________________________";:LOCATE 23,55:PRINT USING FMAT5$;SUM1;:LOCATE 23,70:PRINT USING FMAT6$;SUM2;:
  213. 1880  IF KNUM<18 THEN 1910
  214. 1890  LOCATE 21,55:PRINT"_________________________________":LOCATE 22,55:PRINT USING FMAT5$;SUM1:LOCATE 22,70:PRINT USING FMAT6$;SUM2
  215. 1900  LOCATE 24,1:PRINT"Hit RETURN to continue..";:INPUT"",ANY$:KNUM=6:GOTO 1780
  216. 1910  NEXT I
  217. 1920  LOCATE 24,1:PRINT"Hit RETURN to continue..";:INPUT"",ANY$:RETURN
  218. 1930  CLS:SUM1=0:SUM2=0:KNUM=6:LOCATE 1,20:INPUT"Enter Month Number(1-12) : ",MONTH$
  219. 1940  IF VAL(MONTH$)<1 OR VAL(MONTH$)>12 THEN 1930
  220. 1950  GOSUB 2550 :E=K1:GOSUB 2360
  221. 1960  GOSUB 2350:GOSUB 2160:FOR II=1 TO K1:I=IND(II)
  222. 1970  IF VAL(MONTH$) <> VAL(LEFT$(DAT$(I),2)) THEN GOTO 2050
  223. 1980  SUM1=SUM1+COMM(I)
  224. 1990  IF TRANS$(I)="b" OR TRANS$(I)="B" THEN SUM2=SUM2-TOT(I) ELSE SUM2=SUM2+TOT(I)
  225. 2000  LOCATE KNUM,1:PRINT USING FMAT2$; DAT$(I);:LOCATE KNUM,10:PRINT USING FMAT2$; STOCK$(I);:
  226. 2010  LOCATE KNUM,20:PRINT USING FMAT3$; SHARE(I);:LOCATE KNUM,30:PRINT USING FMAT4$; PRICE(I);:LOCATE KNUM,40:PRINT USING FMAT2$; TRANS$(I);:LOCATE KNUM,55:PRINT USING FMAT5$; COMM(I);:LOCATE KNUM,70:PRINT USING FMAT6$; TOT(I);:
  227. 2020  KNUM=KNUM+2
  228. 2030  IF KNUM>18 THEN 2040 ELSE 2050
  229. 2040  LOCATE 24,1:PRINT"Hit RETURN to continue..";:INPUT"",ANY$:GOSUB 2350:GOSUB 2160:KNUM=6
  230. 2050  NEXT II
  231. 2060  LOCATE 23,35:PRINT"Total ==>";:LOCATE 21,55:PRINT"__________________________";:LOCATE 23,55:PRINT USING FMAT5$;SUM1;:LOCATE 23,70:PRINT USING FMAT6$;SUM2;:
  232. 2070  LOCATE 24,1:PRINT"Hit RETURN to continue..";:INPUT"",ANY$:RETURN
  233. 2080  RETURN
  234. 2090  RETURN
  235. 2100  RETURN
  236. 2110  LSET A1$=MKI$(ACNT):LSET A2$=MKI$(KN):PUT #1,1
  237. 2130  CLS:PRINT"Program Terminated...":RUN"MENU.BAT"
  238. 2140                                                                   REM
  239. 2150  CLS:LOCATE 1,30:PRINT"Review of Stocks on File";:
  240. 2160   LOCATE 4,1:PRINT"Date";:LOCATE 4,10:PRINT"Company";:LOCATE 4,20:PRINT"Shares";:LOCATE 4,30:PRINT"Price";:LOCATE 4,40:PRINT"Bot/Sold";:LOCATE 4,55:PRINT"Commision";:LOCATE 4,73:PRINT"Cost";: RETURN
  241. 2170                                                                   REM
  242. 2180  GOSUB 20000
  243. 2190  RETURN
  244. 2210                                                                   REM
  245. 2220  CLS:INPUT"Please set your printer and hit RETURN...",ANY$:GOSUB 2640:E=KN:GOSUB 2360
  246. 2230  SUM3=0:SUM4=0:GOSUB 2660:NPAGE=1
  247. 2240  KL=1:FOR II=1 TO KN:I=IND(II)
  248. 2250  SUM3=SUM3+COMM(I)
  249. 2260  IF TRANS$(I)="b" OR TRANS$(I)="B" THEN SUM4=SUM4-TOT(I) ELSE SUM4=SUM4+TOT(I)
  250. 2270  LPRINT TAB(1) USING FMAT2$; DAT$(I);:LPRINT TAB(13) USING FMAT2$; STOCK$(I);:
  251. 2280  LPRINT TAB(25) USING FMAT3$; SHARE(I);:LPRINT TAB(35) USING FMAT4$; PRICE(I);:LPRINT TAB(45) USING FMAT7$; TRANS$(I);:LPRINT TAB(55) USING FMAT5$; COMM(I);:LPRINT TAB(70) USING FMAT6$; TOT(I):LPRINT:KL=KL+2
  252. 2290  IF KL>50 THEN 2300 ELSE 2310
  253. 2300  LPRINT:LPRINT:KL=1:LPRINT CHR$(140);:GOSUB 2660:NPAGE=NPAGE+1
  254. 2310  NEXT II
  255. 2320  LPRINT TAB(55) "__________________________";:LPRINT TAB(45) "Total==>";:LPRINT TAB(55) USING FMAT5$;SUM3;:LPRINT TAB(70) USING FMAT6$;SUM4:
  256. 2330  RETURN
  257. 2340                                                                   REM
  258. 2350  CLS:LOCATE 1,25:PRINT"Review of ";MON$(VAL(MONTH$));" Transactions";:RETURN
  259. 2360  REM      Sorting Routine
  260. 2370  M=E-1  :T3=0
  261. 2380  T3=0
  262. 2390  IF T3=1 THEN 2530
  263. 2400  S2=1  :T3=1
  264. 2410  IF S2> M THEN 2510
  265. 2420   IF N$(S2)>N$(S2+1) THEN 2440
  266. 2430  GOTO 2490
  267. 2440  H$=N$(S2):H1=IND(S2)
  268. 2450  N$(S2)=N$(S2+1) :IND(S2)=IND(S2+1)
  269. 2460  N$(S2+1)=H$ :IND(S2+1)=H1
  270. 2470  T3=S2
  271. 2480  GOTO 2490
  272. 2490  S2=S2+1
  273. 2500  GOTO 2410
  274. 2510  M=T3-1
  275. 2520  GOTO 2390
  276. 2530  RETURN
  277. 2540                                                                   REM
  278. 2550  K1=1
  279. 2560  FOR I=1 TO KN
  280. 2570  IF VAL(MONTH$)<>VAL(LEFT$(DAT$(I),2)) THEN 2590
  281. 2580  N$(K1)=DAT$(I):IND(K1)=I:K1=K1+1
  282. 2590  NEXT I
  283. 2600  RETURN
  284. 2610                                                                   REM
  285. 2620  FOR I=1 TO K1:PRINT N$(I),IND(I):NEXT I:INPUT"",ANY$:RETURN
  286. 2630                                                                   REM
  287. 2640  BEEP:PRINT"Please wait..data being sorted!";:FOR I=1 TO KN:X$=LEFT$(DAT$(I),2):Y$=MID$(DAT$(I),4,2):N$(I)=X$+Y$:IND(I)=I:NEXT I:RETURN
  288. 2650                                                                   REM
  289. 2660  LPRINT TAB(1) "Page ";NPAGE;:LPRINT TAB(60) "Date: ";DT$;:LPRINT:LPRINT:LPRINT TAB(30) "Transaction History"
  290. 2670  LPRINT TAB(30) "===================":LPRINT:LPRINT
  291. 2680  LPRINT TAB(1) "Date";:LPRINT TAB(13) "Company";:LPRINT TAB(25) "Shares";:LPRINT TAB(35) "Price";:LPRINT TAB(45) "B/S";:LPRINT TAB(55) "Commision";:LPRINT TAB(73) "Cost":LPRINT:RETURN
  292. 2690  CLS:FOR I=1 TO KN:INDEX(I)=1:NEXT I:Q=1
  293. 2700  FOR II=1 TO KN:SHR=0:I=II
  294. 2710  IF INDEX(I)=0 THEN 1370
  295. 2720  FOR J=I TO KN
  296. 2730  STOK$=STOCK$(I)
  297. 2740  IF STOK$<>STOCK$(J) THEN 1350
  298. 2750    IF TRANS$(J)="B" THEN SHR=SHR+SHARE(J) ELSE SHR=SHR-SHARE(J)
  299. 2760  REM
  300. 2770  INDEX(J)=0
  301. 2780  NEXT J
  302. 2790  STK$(Q)=STOK$:SHAR(Q)=SHR:Q=Q+1
  303. 2800  NEXT II
  304. 2810  FOR I=1 TO Q:PRINT STK$(I),SHAR(I):NEXT I:INPUT"ret ..",AY$
  305. 2820  RETURN
  306. 2830  LPRINT TAB(1) "Page ";NPAGE;:LPRINT TAB(92) "Date: ";DT$;:LPRINT:LPRINT
  307. 2835  LPRINT:LPRINT:LPRINT TAB(50)"Stock Summary":LPRINT TAB(50)"=============":LPRINT:LPRINT
  308. 2840  LPRINT TAB(1)"Stock";:LPRINT TAB(10)"NO Of";:LPRINT TAB(32)"Buy";:LPRINT TAB(67) "Sell";:LPRINT TAB(92)"Total";:LPRINT TAB(102) "Profit"
  309. 2850  LPRINT TAB(1)"Name";:LPRINT TAB(10)"Shares";:LPRINT TAB(20) "Date";:LPRINT TAB(32) "Price";:LPRINT TAB(42) "Comm.";:LPRINT TAB(55) "Date";:LPRINT TAB(67) "Price";:LPRINT TAB(77) "Comm.";:LPRINT TAB(92) "Cost";:LPRINT TAB(102) "or Loss"
  310. 2860  LPRINT TAB(1)"_____";:LPRINT TAB(10) "______";:LPRINT TAB(20)"____";:LPRINT TAB(32)"_____";:LPRINT TAB(42)"_____";:LPRINT TAB(55)"____";:LPRINT TAB(67)"_____";:LPRINT TAB(77)"_____";:LPRINT TAB(92)"____";:LPRINT TAB(102)"_____"
  311. 2870  LPRINT:LPRINT
  312. 2880  RETURN
  313. 5000  CLS:IF KSORT<>0 THEN 5050
  314. 5005  PRINT"Please wait..":GOSUB 1200:FOR I=1 TO Q:N$(I)=NAM$(I):IND(I)=I:NEXT I:E=Q:GOSUB 2360 :KSORT=Q
  315. 5010  L=0:FOR I=1 TO Q:
  316. 5020  IF SPR(I)<>0
  317.